EKS で aws-auth ConfigMap の変更を誤ってしまいアクセス許可を失ったときの対処方法
困っていた内容
aws-auth ConfigMap を変更したところ内容に誤りがあり、EKS クラスターへアクセスができない状態になりました。
他に許可している IAM リソースもなく、再変更もできない状態です。EKS クラスターにアクセスする方法があれば教えてください。
どう対応すればいいの?
EKS クラスターを作成した IAM エンティティからアクセスしてください。
原則として EKS クラスターにアクセス可能な IAM エンティティ(IAM ユーザ、IAM ロール)は、aws-auth ConfigMap で設定します。一方で、EKS クラスターを作成した IAM エンティティは、aws-auth ConfigMap の設定不要で、system:masters
アクセス許可が付与されています。
そのため、aws-auth ConfigMap を誤って変更してしまった場合も、EKS クラスターを作成した IAM エンティティからは引き続きアクセスが可能です。
aws-auth ConfigMap が更新されてクラスターにアクセスできなくなった場合は、クラスター作成者の IAM エンティティを使用してクラスターにアクセスできます。この理由は、クラスター作成者は aws-auth ConfigMap にマッピングする必要がないためです。
なお、EKS クラスターを作成した IAM エンティティは、CloudWatch Log Insights でコントロールプレーンのロググループに対して次のクエリを実行すると特定できます。
また、CloudTrail のイベント履歴からCreateCluster
イベントの実行履歴からも確認できます。
fields @logstream, @timestamp, @message | sort @timestamp desc | filter @logStream like /authenticator/ | filter @message like "username=kubernetes-admin" | limit 50
@message time="2022-05-26T18:55:30Z" level=info msg="access granted" arn="arn:aws:iam::123456789000:user/testuser" client="127.0.0.1:57586" groups="[system:masters]" method=POST path=/authenticate uid="aws-iam-authenticator:123456789000:AROAFFXXXXXXXXXX" username=kubernetes-admin